package ch10;

import java.util.HashSet;
import java.util.Iterator;
import java.util.Set;

import org.omg.CORBA.COMM_FAILURE;

public class SetClass {

	public static void main(String[] args) {
		//Set集合
		//Set集合是Collection集合的子接口，Set集合用于保存无序且唯一的数据

		Computer computer = new Computer("HP",5000);
		Computer computer2 = new Computer("HW",5500);
		Computer computer3 = new Computer("HW",5500);

		
		//集合的学习
		//学习有哪些集合，每个集合实现了几种数据结构
		//学习对集合的元素进行增删改查
		Set computerSet = new HashSet();
		System.out.println("size"+computerSet.size());
		
		computerSet.add(computer);
		computerSet.add(computer2);
		//注意：Set集合的唯一性一般指，同一条数据（对象）不能被保存两次，而不是指对象的内部数据相同
		//如果需要根据元素的数据进行判断，则需要重写equals方法
		computerSet.add(computer3);
		System.out.println("size"+computerSet.size());
		
		//集合遍历
		//方法1-推荐使用迭代接口
		Iterator iterator = computerSet.iterator();
		while (iterator.hasNext()) {//hasNext判断集合中是否有下一条数据
			Object object = iterator.next();//取出条数据，并把指针下移
			Computer comp = (Computer)object;
			System.out.println(comp);
		}
		
		//删除
		computerSet.remove(computer2);
		System.out.println("size"+computerSet.size());
		iterator = computerSet.iterator();
		while (iterator.hasNext()) {//hasNext判断集合中是否有下一条数据
			Object object = iterator.next();//取出条数据，并把指针下移
			Computer comp = (Computer)object;
			//对集合中的数据（元素）进行修改
			comp.setBrand("dell");
			System.out.println(comp);
		}
		
		//查询数据是否在集合中
		if(computerSet.contains(computer2)) {
			System.out.println("数据在集合中");
		}else {
			System.out.println("数据没保存在集合中");
		}
		
		iterator = computerSet.iterator();
		while (iterator.hasNext()) {//hasNext判断集合中是否有下一条数据
			Object object = iterator.next();//取出条数据，并把指针下移
			Computer comp = (Computer)object;
			//对集合中的数据（元素）进行修改
			System.out.println(comp);
		}
	}

}
